headerbar: Don't use gtk_widget_unparent() with GtkBox
authorAlexander Mikhaylenko <alexm@gnome.org>
Mon, 8 Feb 2021 12:52:10 +0000 (17:52 +0500)
committerAlexander Mikhaylenko <alexm@gnome.org>
Mon, 8 Feb 2021 13:46:27 +0000 (18:46 +0500)
gtk_widget_unparent() is for widget implementations, it's not supposed to
be used from outside.

gtk/gtkheaderbar.c

index 30423b9d48905e44dc19cdc4364b49867d91309e..6f90f38f6b5e1d61ef6e5064b5495944269e82f2 100644 (file)
@@ -743,8 +743,17 @@ gtk_header_bar_set_show_title_buttons (GtkHeaderBar *bar,
     create_window_controls (bar);
   else
     {
-      g_clear_pointer (&bar->start_window_controls, gtk_widget_unparent);
-      g_clear_pointer (&bar->end_window_controls, gtk_widget_unparent);
+      if (bar->start_window_controls)
+        {
+          gtk_box_remove (GTK_BOX (bar->start_box), bar->start_window_controls);
+          bar->start_window_controls = NULL;
+        }
+
+      if (ar->end_window_controls)
+        {
+          gtk_box_remove (GTK_BOX (bar->end_box), bar->end_window_controls);
+          bar->end_window_controls = NULL;
+        }
     }
 
   g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_SHOW_TITLE_BUTTONS]);